package model

import "publish-manage/pkg/domain"

type Agent struct {
	Id         string          `json:"id,omitempty" xorm:"pk varchar(50)"`
	Ip         string          `json:"ip,omitempty" xorm:"varchar(50) comment('agent的IP地址')"`
	Name       string          `json:"name,omitempty" xorm:"varchar(50) comment('可修改的自定义命名')"`
	CreateTime domain.DateTime `json:"createTime" xorm:"created"`
}

type AgentPackage struct {
	Id         string          `json:"id,omitempty" xorm:"pk varchar(50)"`
	AgentId    string          `json:"agentId,omitempty" xorm:"index varchar(50) comment('代理ID')"`
	PackageId  string          `json:"packageId,omitempty" xorm:"index varchar(50) comment('部署包ID')"`
	Type       int             `json:"type,omitempty" xorm:"comment('部署类型 1-静态资源部署 2-可执行程序直接部署 3-docker部署')"` // 类型 1-静态资源部署 2-可执行程序直接部署 3-docker部署
	Path       string          `json:"path,omitempty" xorm:"varchar(1000) comment('保存储位置,为空则使用package的路径')"`
	ZipDir     string          `json:"zipDir,omitempty" xorm:"comment('压缩包中的目录')"`
	Command    string          `json:"command,omitempty" xorm:"varchar(2000) comment('部署后执行的命令，为空则使用package的命令')"` // 部署后的命令
	CreateTime domain.DateTime `json:"createTime" xorm:"created"`
}

type AgentNotifyError struct {
	Id         string          `json:"id,omitempty" xorm:"pk varchar(50)"`
	AgentId    string          `json:"agentId,omitempty" xorm:"index varchar(50) comment('代理ID')"`
	NotifyInfo string          `json:"notifyInfo,omitempty" xorm:"varchar(2000) comment('通知内容')"`
	ErrorInfo  string          `json:"errorInfo,omitempty" xorm:"varchar(2000) comment('错误信息')"`
	CreateTime domain.DateTime `json:"createTime" xorm:"created"`
}

func init() {
	SyncModel = append(SyncModel, Agent{}, AgentPackage{}, AgentNotifyError{})
}
